Skip to content

修改用户自定义设置 - SetConfigByKey

函数简介

通过键值对方式修改单个用户自定义设置项。等价于 SetConfig({"key": value})

键名大小写不敏感;布尔/数值支持字符串(如 "True""1")。与 OCR/YOLO 模型调参共用解析规则,见 JSON配置解析约定

接口名称

SetConfigByKey

DLL调用

int SetConfigByKey(long ola, string key, string value);

参数说明

参数名类型说明
ola长整数型OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。
key字符串配置项名称,如:RealMouseMode。
value字符串配置项值,如:true。

示例

SDK 调用

cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
ola.SetConfigByKey("DefaultEncoding", "1");
csharp
using OLAPlug;

var ola = new OLAPlugServer();
ola.SetConfigByKey("DefaultEncoding", "1");
python
from OLAPlugServer import OLAPlugServer

ola = OLAPlugServer()
ola.SetConfigByKey("DefaultEncoding", "1")
java
import com.olaplug.OLAPlugServer;

OLAPlugServer ola = new OLAPlugServer();
ola.SetConfigByKey("DefaultEncoding", "1");
go
import "github.com/ola/olaplug/olaplug"

ola, _ := olaplug.NewOLAPlugServer("OLAPlug_x64.dll")
defer ola.ReleaseObj()
ola.SetConfigByKey("DefaultEncoding", "1")
rust
use olaplug::OLAPlugServer;

let ola = OLAPlugServer::new("OLAPlug_x64.dll").unwrap();
ola.set_config_by_key("DefaultEncoding", "1");
cpp
var ola = com("OlaPlug.OlaSoft")
ola.SetConfigByKey("DefaultEncoding", "1");
vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
ola.SetConfigByKey("DefaultEncoding", "1");
text
.局部变量 ola, OLAPlug
ola.创建 ()
ola.SetConfigByKey("DefaultEncoding", "1")
aardio
import OLAPlugServer;
var ola = OLAPlugServer();
ola.SetConfigByKey("DefaultEncoding", "1");
text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer
ola.SetConfigByKey("DefaultEncoding", "1");
cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
ola.SetConfigByKey("DefaultEncoding", "1");

原生 DLL 调用

cpp
long instance = CreateCOLAPlugInterFace();
SetConfigByKey(instance, "DefaultEncoding", "1");
csharp
long instance = CreateCOLAPlugInterFace();
SetConfigByKey(instance, "DefaultEncoding", "1");
python
from ctypes import CDLL, c_int, c_int64, create_string_buffer

ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
instance = ola.CreateCOLAPlugInterFace()
SetConfigByKey(instance, "DefaultEncoding", "1")

返回值

返回值说明
1成功。
0失败。

可用配置项

编码与键鼠仿真(全局)

配置项类型默认值说明
DefaultEncoding整数型0接口入参默认编码:0=GBK,1=UTF-8,2=Unicode
DefaultReturnEncoding整数型1接口返回值默认编码:0=GBK,1=UTF-8,2=Unicode
SimModeType整数型0键鼠仿真模式:0=标准,1=Logitech 驱动,2=LogitechGHubNew,3=Razer,4=欧拉驱动
OLAMouseDeviceMode整数型0欧拉驱动鼠标模式 0~10;部分模式可能蓝屏,建议从 0 起试
OLAKeypadDeviceMode整数型0欧拉驱动键盘模式 0~10;部分模式可能蓝屏,建议从 0 起试
UseAbsoluteMovebool型true驱动鼠标是否使用绝对移动

真实鼠标轨迹(实例级)

配置项类型默认值说明
EnableRealMousebool型true是否启用真实鼠标轨迹;MoveTo / MoveToEx 是否走拟人轨迹也受此开关控制
RealMouseMode整数型6轨迹风格:1=标准用户,2=游戏玩家,3=非光学鼠标(慢),4=平衡,5=机器人(直线),6=自定义
MinMouseTrajectory整数型50最小轨迹距离(像素);小于该值直接定位,不走轨迹
RealMouseBaseTimePer100Pixels整数型100每 100 像素的基础移动时间(毫秒)需设置RealMouseMode=6才能生效自定义配置
RealMouseFlowFlag整数型161速度曲线组合位标志,按位或组合,见下表。需设置RealMouseMode=6才能生效自定义配置
RealMouseNoise双精度浮点数5.0噪声,影响轨迹随机性 需设置RealMouseMode=6才能生效自定义配置
RealMouseDeviation整数型5偏差,影响路径曲率 需设置RealMouseMode=6才能生效自定义配置
RealMouseMinSteps整数型300最小步数 需设置RealMouseMode=6才能生效自定义配置
RealMouseTimeToSteps双精度浮点数2.5步间时间间隔系数 需设置RealMouseMode=6才能生效自定义配置
RealMouseOvershoots整数型0过冲点数 需设置RealMouseMode=6才能生效自定义配置
MouseDriftCheckTime整数型0鼠标漂移检测间隔(毫秒);0=不检测
MousePosCallbackMinOffset整数型0MoveTo 终点矫正阈值(像素);|offsetX| 与 |offsetY| 小于该值时不矫正;0=不限制。配合 SetWindowCursorSetMousePosCallback

RealMouseFlowFlag 标志位

将需要的标志 按位或(|)相加 后写入 RealMouseFlowFlag(默认 161 = 1 + 32 + 128):

效果
1变化速度曲线
2中断移动
4另一种中断模式
8慢启动
16另一种慢启动
32锯齿状移动
64停止移动
128调整移动
256随机移动
512恒定速度

位运算组合示例(RealMouseFlowFlag)

csharp
// 变化速度曲线 + 锯齿状移动 + 调整移动(默认值 161)
int flowFlag = 1 | 32 | 128;
ola.SetConfigByKey("RealMouseFlowFlag", flowFlag.ToString());
python
# 慢启动 + 随机移动
flow_flag = 8 | 256  # 264
ola.SetConfigByKey("RealMouseFlowFlag", str(flow_flag))
cpp
// 恒定速度 + 锯齿状移动
int flowFlag = 32 | 512;  // 544
ola.SetConfigByKey("RealMouseFlowFlag", std::to_string(flowFlag));

完整轨迹参数说明见 生成鼠标移动轨迹 - GenerateMouseTrajectory

键盘鼠标间隔与输入锁定(实例级)

配置项类型默认值说明
EnableRealKeypadbool型false是否启用真实键盘输入延时
KeyDownInterval整数型50键盘单击间隔(毫秒)
MouseClickInterval整数型50鼠标单击间隔(毫秒)
MouseDoubleClickInterval整数型200鼠标双击间隔(毫秒)
InputLockbool型false输入锁定;与 LockInput 行为一致
KeyboardHwnd长整数型0键盘消息目标窗口句柄
MouseHwnd长整数型0鼠标消息目标窗口句柄
CheckDisplayDeadInterval整数型50检测画面卡死间隔(毫秒);0=不检测
SnapPrefetchInterval整数型33后台截图预取间隔(毫秒);0=关闭 L1 缓存与预取 Worker
DxCaptureMaxFps整数型60DX hook 截图帧率上限(fps),供目标进程内节流;0=不限制。该值在DX 绑定/初始化时时生效;若运行中修改配置,需重新绑定窗口后才会应用到目标进程内的捕获节流

VNC 连接(实例级)

配置项类型默认值说明
VncServer字符串127.0.0.1VNC 服务器地址
VncPort整数型5900VNC 端口
VncPassword字符串(空)VNC 密码
|

路径、数据库与图像(全局)

配置项类型默认值说明
WorkPath字符串(空)工作路径
DbPath字符串(空)SQLite 数据库路径
DbPassword字符串(空)SQLite 数据库密码
DriverPath字符串(空)自定义驱动路径
SymbolServer字符串(空)符号服务器,如 https://msdl.microsoft.com
SharedMemoryNamePrefix字符串TSVN_共享内存/沙盒 IPC 前缀;绑定沙盒时与 OpenIpcPath 配合
JpegQuality整数型100JPG 压缩质量 0~100
MaxOverlap双精度浮点数0.5多图返回最大重叠度;0=完全不重叠
MatchColorWeight双精度浮点数0.7彩色找图颜色权重 0~1.0
ImageStitchMatchValue双精度浮点数0图片拼接匹配阈值 0~1
MultiTemplateAbortOnInvalidImagebool型true多模板路径 | 分隔时,某一图不存在或加载失败:true默认)整次返回空;false 跳过无效图继续匹配
MultiColorSimMode整数型0多点找色 sim:0=颜色相似度,1=允许部分点不匹配
EnableOcrOverlapCountingbool型falseOCR 是否允许重叠词同时返回
OcrFindCharThreadCount整数型-1字库找字识别线程数:-1=按 CPU 核心数自动;0=不开启多线程;>0=指定线程数

YOLO(全局)

配置项类型默认值说明
YoloRegionSortMode整数型0检测类任务 Regions 排序:0=置信度降序,1=同分比 x,2=同分比 y 再 x,3=从左到右,4=从上到下。仅对未单独设置 RegionSortMode 的模型生效
YoloAutoWarmupbool型true模型加载成功后是否自动预热,避免首次正式检测耗时过长
YoloAutoWarmupIterations整数型2自动预热推理次数,有效范围 0~100;0=跳过预热。每次使用 640×640 合成图做真实推理,用于触发 CUDA/TensorRT/ONNX 等首次初始化

OCR(全局)

配置项类型默认值说明
OcrMinConfidence双精度浮点数0.5OCR 识别结果最低置信度(0.0~1.0);低于该值的文本块在返回前丢弃,0=不过滤。作用于 Ocr/OcrEx*Details* 系列,为本地后过滤(非后端推理参数)
OcrAutoWarmupbool型trueOcrLoadModel / OcrLoadModelMemory / 内置模型加载成功后是否自动预热
OcrAutoWarmupIterations整数型2自动预热推理次数,0~100;0=跳过。加载阶段跑真实 det/rec 预热,避免首次正式识别耗时过长

窗口、虚拟机与绑定模式(全局)

配置项类型默认值说明
FindWindowMode整数型0找窗口:0=仅可见,1=全部,2=不可见
VMwareVersion整数型-1VMware 版本;-1=读注册表自动判断,支持 10/16/17/18/19
RemoteServerExeName字符串RemoteServer.exeSHM 远程模式下自动发现 B 端进程的 exe 名
BindModeMouseALL字符串(空)绑定模式鼠标方式全量列表(| 分隔)
BindModeKeypadALL字符串(空)绑定模式键盘方式全量列表
BindModePubALL字符串(空)绑定模式公共方式全量列表
BindModeMouseDefault字符串(空)常用绑定模式鼠标方式
BindModeKeypadDefault字符串(空)常用绑定模式键盘方式
EnsureElevatedbool型true是否校验管理员权限;true默认)时 BindWindowBindWindowEx 要求当前进程已提升,未满足则绑定失败并返回 -2false 关闭此限制。可用 IsElevated 判断当前进程是否已提升

相关接口